Method for smooth rotation

ABSTRACT

A method for smooth rotation of an object viewed from a finite number of angles encompasses resetting the drag origin in response to the pointer exiting a region centered on the drag origin. Upon exiting the region, a new view of the object displays thereby providing the appearance of rotation.

BACKGROUND OF THE INVENTION

The present invention relates to software applications that displayimages of physical objects from a finite number of angles, and moreparticularly to a method for enhancing the smoothness of rotation.

Internet multi-media viewers, such as Quicktime by Apple Computer,provide the experience of rotating a physical object by allowing a userto control which view, of a finite number of views taken from differentangles, is to be displayed. Typically, the user will activate a rotationmode then press and drag within the application.

Dragging horizontally displays a sequence of views of the object fromangles where the value of the longitude coordinate varies. Draggingvertically displays a sequence of views of the object from angles wherethe value of the colatitude coordinate varies. Dragging in a diagonaldirection varies the values of both longitude and colatitudecoordinates, as one would expect.

To realize reasonable pointer sensitivity, the current view to displayis typically determined by a function with inputs comprising of, thetotal number of horizontal pixels drug divided by a predefined number ofpixels per view, such as six; and the total number of vertical pixelsdrug divided by the predefined number of pixels per view.

The perception of jerky rotation occurs when the user drags in a neardiagonal direction such as forty degrees from horizontal. In this case,the display updates to a new view in the longitude direction after atotal traveled distance of eight pixels. Shortly after, the displayupdates to a new view in the colatitude direction after a total traveleddistance of just ten pixels. Likewise, the next longitude view changeoccurs at sixteen pixels and colatitude at just nineteen pixels. Thus,the user perceives jerky, zigzag, rotation by way of a pause, then tworelatively quick changes of views, followed by a relatively long pause,and again two relatively quick changes of views.

There remains a need to improve the user experience by providingsmoother rotation when dragging diagonally.

BRIEF SUMMARY OF THE INVENTION

Accordingly, an aspect of the present invention provides a method ofdisplaying a new view from a different angle when a user drags a pointerout of a predefined region centered on the drag origin. The drag originthen resets to be the position of the pointer when exiting the region.

Other novel features of the present invention are apparent from thesummary, detailed description, claims, and attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

In drawings which help illustrate the present invention,

FIG. 1 is an isometric of an object in a spherical coordinate system;

FIG. 2 is a graphical representation of a finite number views of anobject stored in a data file;

FIG. 3 shows a square region;

FIG. 4 is a flow chart of the present invention; and

FIG. 5 is a diagram of a typical computer system.

In all figures, like reference numerals represent the same or identicalcomponents of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows a 3-dimensional subject object 10 at a origin Q 11 of aspherical coordinate system 12 and a point P 13 from which object 10 isviewed. In the system of spherical Coordinates 12 point P 13 in 3-spaceis represented by an ordered triple (R, Phi, Theta) where R is thedistance from P 13 to origin Q 11. An angle Phi 14 is the angle a radialline QP 15 makes with the positive direction of a z-axis 16, and anangle Theta 17 is the angle between a plane 18, containing P 13 andz-axis 16, and an xz-plane containing z-axis 16 and an x-axis 19. Forfurther understanding, the Phi-surfaces (Phi=constant) are circularcones with z-axis 16 as axis; and the Theta-surfaces (Theta=constant)are vertical planes containing z-axis 16. Phi 14 is frequently referredto as the current value of the colatitude coordinate, and Theta 17 isthe current value of the longitude coordinate.

FIG. 2 shows a simplified example of a graphical representation of datain a rectangular table 20 form storing 4×2 two dimensional views as seenfrom point P 13 to subject object 10. The top row, A to D, holds Phi 14constant at 45 degrees and Theta 17 varies such that in view A 21Theta=45, in view B 22 Theta=135, in view C 23 Theta=225, and in view D24 Theta=315 degrees. Similarly, the bottom row, E to H, holds Phi 14constant at 135 degrees and Theta 17 varies such that in view H 25Theta=45, in view G 26 Theta=135, in view F 27 Theta=225, and in view E28 Theta=315 degrees. The number of views for typical implementation is16×8 and will likely increase as technology becomes faster.

When a rotate mode is active, a user may manipulate a pointer devicesuch that a desired sequence of views 21-28 displays on a screen.Typically, the user moves the pointer within a display window, thenpress-and-holds a mouse button and drags the pointer in the direction ofthe desired rotation. Similarly, for a touch screen the user toucheswithin the display window and maintains contact while dragging thestylus in the direction of desired rotation.

In a preferred embodiment, referring to FIG. 3, the user defines a dragorigin point A 29 by first press-and-holding the mouse button and thendragging. A small square region 30, such as thirteen by thirteen pixels,is defined having a geometric center about drag origin point A 29, andhaving corners at points B 31, C 32, D 33, and E 34. Side BC havingthree segments, BF 35, FG 36, and GC 37. Similarly, side CD having threesegments, CH 38, HJ 39, and JD 40. Side DE having three segments, DK 41,KL 42, and LE 43. Side EB having three segments, EM 44, MN 45, and NB46.

The user dragging out of region 30 and across one of segments 35-46,results in the display of a new view of object 10 from a differentpairing of Phi 14 and Theta 17 angles. An example of the user dragginghorizontally along a path 47 to a point R 48 on segment HJ 39, resultsin displaying a new neighboring view with a smaller Theta 17 angle, suchthat object 10 appears to rotate to the right. Whereas, the userdragging diagonally along a path 49 to a point S 50 on segment CH 38,results in displaying a new neighboring diagonal view with a larger Phi14 angle and a smaller Theta 17 angle, such that object 10 appears torotate diagonally up right.

In addition to changing the view to display, the user dragging out ofregion 30 resets the drag origin point A 29 to be the location of exit,such as at point R 48. At this time, region 30 re-centers about the newlocation of the drag origin point A 29 as the user continues with thesame dragging action until ultimately releasing the mouse button.

The flowchart shown in FIG. 4 describes the operation of the presentinvention. The rotation is started 51 upon the user activating therotate mode by clicking an icon or selecting from a pull-down or pop-upmenu, then pressing and holding the mouse button to begin a drag. Instep 52, drag origin point A 29 equals the present pointer position.Region 30 geometrically centers about point A 29. In step 53, if thepresent pointer position is within region 30 then the flow branches tostep 55, otherwise branches to step 54. Step 54, displays a differentview of object 10 determined by a function having an input comprisingthe location of exiting region 30. Typically, the display of the newview provides the perception of object 10 rotating in one of left,right, up, down, or four diagonal directions. The flow then jumps backto step 52. In step 55, if the user continues to hold down the mousebutton then the flow branches back to step 53, otherwise branches to theending step 56.

Referring now to FIG. 5, a software application utilizing the presentinvention would typically run on an electronic device such as acomputer, phone, or game console. The electronic device typicallycomprises a display screen 57, one or more microprocessors 58, a memorydevice 59, a storage device 60, an input device 61, and a pointer device62. Microprocessor 58 communicates with memory device 59, storage device60, input device 61, pointer device 62, and updates graphics displayedon display screen 57. Storage device 60 may be a hard-drive, internetconnection, flash ram, etc. Input device 61 may be a keyboard, remotebutton, touch screen area with character recognition, etc. Pointerdevice 62 may be a mouse, touch screen, touch pad, tablet, track ball,eye tracker, accelerometer, joystick, etc. Releasing a mouse button tocomplete a drag is equivalent to removing a stylus from a touch screen,and similar actions involving general pointer devices 62.

The present invention's teachings may be implemented in any generalpurpose application such as, but not limited to, internet browsers,publication packages, presentation packages, medical image packages, orgames.

It will be apparent to one skilled in the art that region 30 may be anyshape, such as but not limited to, an octagon, general polygon, circle,or peanut. Re-centering region 30 may occur before displaying the newview in step 54. The apparent object rotation need not include diagonaldirections.

Thus, the present invention provides a method for smoother rotation ofan object viewed from a finite number of angles. Avoids zigzag and jerkyrotation when the user drags diagonally by resetting the drag origin atthe time a new view displays when the pointer exits a region centered onthe drag origin.

Specific preferred embodiments of the present invention are describedhereinabove; it is to be understood that the invention is not limited tothose particular embodiments, and one skilled in the art may makevarious changes and modifications without departing the form the scopeor the spirit of the invention as it is defined in the attached claims.

1. In an application where an object is rotated by sequencing through afinite number of predetermined views from different angles, a method ofsmooth rotation comprising: a. providing a first means for displaying aview of an object; b. providing a second means for performing a dragoperation, the drag operation comprises a drag origin location and apresent pointer location; c. providing a third means for defining afirst region, said first region initially centered on said drag originlocation, said first region having a geometric shape; d. providing aforth means for performing actions in response to said present pointerlocation exiting said first region, where said actions; i. redefine thelocation of said first region to be centered on the location of exit,and ii. display a different angular view of the object determined by theexit location of the pointer from said first region; e. Providing afifth means for repeating d.i and d.ii for each occurrence of saidpresent pointer location exiting said first region while the same dragoperation continues without releasing.
 2. The method as recited in claim1 wherein said different view provides the appearance of rotating theobject in a direction selected from the group consisting of left, right,up, and down.
 3. The method as recited in claim 1 wherein said differentview provides the appearance of rotating the object in a directionselected from the group consisting of left, right, up, down, diagonal upleft, diagonal up right, diagonal down right, and diagonal down left. 4.The method as recited in claim 1 wherein the order of steps d(i) andd(ii) are swapped such that step d(ii) occurs before step d(i).
 5. Themethod as recited in claim 1 wherein said first region having ageometric shape selected from the group consisting of square, octagon,polygon, and circle.
 6. A computing system for visually rotating anobject by sequencing through a finite number of predetermined views fromdifferent angles, the computing system comprising: a microprocessor; afirst means for displaying a view of an object; a second means forperforming a drag operation, the drag operation comprises a drag originlocation and a present pointer location; a third means for defining afirst region, said first region having a geometric shape, said firstregion initially centered on said drag origin location; a forth meansfor performing actions in response to said present pointer locationexiting said first region, wherein said actions redefine said firstregion position to be centered on the location of exit and said actionsdisplay a different angular view of the object determined by the exitlocation of the pointer from said first region, while the same dragcontinues; whereby the object appears to rotate smoothly.
 7. Thecomputing system as recited in claim 6 wherein said different viewprovides the appearance of rotating the object in a direction selectedfrom the group consisting of left, right, up, and down.
 8. The computingsystem as recited in claim 6 wherein said different view provides theappearance of rotating the object in a direction selected from the groupconsisting of left, right, up, down, diagonal up left, diagonal upright, diagonal down right, and diagonal down left.
 9. A computingsystem for visually rotating an object by sequencing through a finitenumber of predetermined views from different angles, the computingsystem comprising: a pointing device for a user to rotate the object bycreating a drag origin location and a present pointer location; adisplay on which a view of an object displays; a function that performsactions in response to said present pointer location exiting a firstregion, said first region initially centered on said drag originlocation, said first region having a geometric shape, wherein saidactions display a different angular view of the object determined by theexit location of said present pointer from said first region, and saidactions redefine said first region position to be centered on thelocation of exit; a microprocessor that receives inputs from saidpointing device, runs the calculations of the function, and displays theview of the object on the display; whereby the object appears to rotatesmoothly in horizontal, vertical, and diagonal directions.
 10. Acomputer program product to perform the method as recited in claim 1comprises a computer program tangibly embodied in a non-transitorystorage device.
 11. The computing system as recited in claim 6 whereinsaid first region having a geometric shape selected from the groupconsisting of square, octagon, polygon, and circle.
 12. The computingsystem as recited in claim 9 wherein said first region having ageometric shape selected from the group consisting of square, octagon,polygon, and circle.